#ifndef __CLIENT__H
#define __CLIENT__H
#include <stdio.h>
#include "shm.h"
#include "string.h"
#include "queue.h"
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <pthread.h>
#include "msg.h"

#define TOPIC_SZ 64
#define CONTENT_SZ 64

enum work_mode
{
    PUBLISH = 0, // 发布消息
    SUBSCRIBE,   // 订阅消息
};

// 数据包
typedef struct packet
{
    char topic[TOPIC_SZ];     // 主题内容
    pid_t pid;                // 发布与订阅进程ID
    enum work_mode mode;      // 工作模式
    char content[CONTENT_SZ]; // 消息内容
} packet_t;

void client_init();
void subscribe(char *topic);
void publish(char *topic, char *content);

#endif